Jtag
The IEEE 1149.1 serial bus, also known as the Joint Test Action Group or JTAG bus, was devised for testing of inactive field replaceable units (FRUs) by providing access from a tester to circuitry within the FRU. In particular; the JTAG bus provided ability to perform a boundary scan on each integrated circuit on an FRU. The tester can verify connectivity of the integrated circuits of an FRU and verify that they are installed correctly. The JTAG bus provides for interconnection of one or more integrated circuits in a chain, any of which may be addressed by the tester. Typically, multiple devices of a circuit board are interconnected into a JTAG chain.
The JTAG bus uses four wires. These include a serial data-in line, a serial data-out line, a clock line, and a test mode select line. Typically the data-out line of a first chip in a chain couples in daisy-chain configuration to the data-in line of a second chip of the chain, and the data-out line of the second chip couples to the data-in line of a third; the data-out line of the last chip in the chain is brought back to the test connector.
The IEEE 1152 bus is a newer, enhanced, version of the 1149.1 JTAG bus. References herein to a JTAG bus are intended to include both the 1149.1 and 1152 variations.
The JTAG bus is most often used for testing FRUs in a factory environment, typically when these FRUs are inserted into FRU test apparatus for production testing. For purposes of this application, the term system excludes FRU test apparatus as used in production testing; the term system includes computer systems where FRUs operate to run operating system and user programs.
Exceptions
Modern digital systems are capable of detecting numerous types of errors, often known as exceptions. Many of these exceptions involve errors that occur as hardware, such as processor and input-output (I/O) device hardware, interacts with executing firmware or software. Exceptions range from simple errors to complex, difficult to debug, errors.
Typically, upon occurrence of an exception, processor state is saved and an exception-handler process is invoked. The exception handler process thereupon performs tasks that may include one or more of:    saving information about the exception to permit debug of exception causes,    reporting exception occurrence to system operators,    recovering from the exception cause, which may include retrying an operation, terminating and/or restarting specific processes triggering the exception, or rebooting the computer system.Saving Information for Debugging
Exception causes are many and varied. Some exception causes are hardware related, many are firmware or software related. It is often desirable to analyze exception causes so that system reliability may be improved by reducing the rate of exceptions. Once causes are understood, appropriate repairs or design corrections may be made to system hardware, and revisions made to firmware and software. While many exceptions recur frequently under conditions that are readily duplicated in a laboratory where they can be analyzed, others may happen rarely. Yet other exceptions may happen only under field conditions. It is desirable to capture sufficient information about rare exceptions, or exceptions that happen only under field conditions, that underlying causes can be understood.
Exception handlers operating under the Unix or similar operating systems may save a “core” file upon occurrence of some exceptions. The “core” file contains detailed information about the state of processor registers and memory at the time an exception is detected. While a “core” file can be useful for debugging some exception causes, it lacks information about hardware state, especially complex I/O subsystem hardware, state, that may be of interest to an engineer analyzing an exception.
While I/O subsystem hardware may be fairly simple in some computer systems, I/O subsystem hardware can be quite complex in others. Control-oriented systems, such as are commonly embedded in radar systems, vehicles and aircraft, may have quite complex I/O hardware. The high-performance graphics integrated circuits now available for personal computers can also be quite complex.